using UnityEngine;
using UnityEngine.Tilemaps;

public class CollisionLayer : TilemapLayer
{
    // 定义私有成员变量 _collisionTileBase，用于存储碰撞 Tilemap 中的 TileBase
    [SerializeField]
    private TileBase _collisionTileBase;

    // 定义 SetCollisions 方法，用于根据 Buildable 物体设置或取消碰撞 Tilemap 上的碰撞
    public void SetCollisions(Buildable buildable, bool value)
    {
        // 根据给定的 bool 值确定是否将 _collisionTileBase 设置为 null
        var tile = value ? _collisionTileBase : null;

        // 遍历 buildable 的 CollisionSpace，即碰撞区域内的所有坐标，并在碰撞 Tilemap 上设置或取消相应的碰撞 Tile
        buildable.IterateCollisionSpace(tileCoords => _tilemap.SetTile(tileCoords, tile));
    }
}

